package com.example.testplatform.mapper;

import com.example.testplatform.entity.Menu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface MenuMapper {
    
    // 查询所有菜单列表
    List<Menu> findAll();
    
    // 根据ID查询菜单
    Menu findById(@Param("id") Long id);
    
    // 根据父菜单ID查询子菜单
    List<Menu> findByParentId(@Param("parentId") Long parentId);
    
    // 新增菜单
    Integer insert(Menu menu);
    
    // 更新菜单
    Integer update(Menu menu);
    
    // 删除菜单
    Integer delete(@Param("id") Long id);
    
    // 更新菜单状态
    Integer updateStatus(@Param("id") Long id, @Param("status") Integer status);
    
    // 根据角色ID查询菜单列表
    List<Menu> findByRoleId(@Param("roleId") Long roleId);
    
    // 获取菜单树结构
    List<Map<String, Object>> getMenuTree(@Param("parentId") Long parentId);
}